package com.kaifamiao.list;

import java.util.*;

/**
 * 1、工具类
 *       java.util.Arrays 用来操作数组
 *       java.util.Objects 用来操作对象
 *       java.util.Collections 用来操作集合
 * 2、将 数组 "转换" 为 List集合
 *       可以借助于 Arrays.asList( T... e ) 方法 将数组 "转换" 为 List集合 (在Java8之前)
 *       可以借助于 List.of( E... elements ) 方法 将数组 "转换" 为 List集合 (从Java8开始)
 * 3、对 List集合 排序
 *      Collections.sort( List<T> list ) 自然排序
 *      Collections.sort( List<T> list, Comparator<? super T> c ) 根据比较器排序
 */
public class ListSort1 {

    public static void main(String[] args) {

        Integer[] array = { 9, 10, 2, 6, 7, 3, 4 };
        // 调用 Arrays 的 asList 方法将 数组 "转换" 为 List集合
        // 这个集合不能添加元素、不能删除元素，但可以替换和排序
        List<Integer> list = Arrays.asList( array );
        System.out.println( list );

        List<Integer> numbers = new ArrayList<>();
        numbers.addAll( list );
        numbers.add( 1 );
        numbers.add( 0 , 5 );

        System.out.println( numbers );
        // 用 自然顺序 对 numbers 集合中的元素进行整体排序
        Collections.sort( numbers );
        System.out.println( numbers );

        Comparator<Integer> comparator = new Comparator<Integer>() {
            @Override
            public int compare(Integer a, Integer b) {
                if( a != null && b != null ) {
                    return -( a - b );
                }
                return 0;
            }
        };

        Collections.sort( numbers, comparator );
        System.out.println( numbers );

    }

}
